import os
import pandas as pd
import numpy as np
from datetime import datetime, timedelta
import sys

# 添加项目根目录到系统路径
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(project_root)

from utils import FileUtils

def generate_mock_historical_data():
    """生成模拟的历史数据"""
    # 获取数据目录
    data_dir = os.path.join(project_root, "data")
    
    # 获取最新的数据文件
    latest_file = max(os.listdir(data_dir), key=lambda x: x if x.endswith('.xlsx') else '0')
    latest_data = pd.read_excel(os.path.join(data_dir, latest_file))
    
    # 获取所有板块名称
    sectors = latest_data['板块'].tolist()
    
    # 生成日期列表（不包括最新的日期）
    latest_date = datetime.strptime(latest_file.split('.')[0], '%Y%m%d')
    dates = [(latest_date - timedelta(days=i+1)).strftime('%Y%m%d') for i in range(30)]
    
    # 为每一天生成模拟数据
    for date_str in dates:
        # 创建模拟数据
        mock_scores = []
        for sector in sectors:
            # 生成60-90之间的随机热力得分
            score = np.random.uniform(60, 90)
            mock_scores.append({
                '板块': sector,
                '热力得分': round(score, 2)
            })
        
        # 创建DataFrame
        df = pd.DataFrame(mock_scores)
        
        # 保存到Excel
        FileUtils.save_to_excel(df, data_dir, date_str)
        print(f"已生成 {date_str} 的模拟数据")

if __name__ == "__main__":
    generate_mock_historical_data()
    print("模拟数据生成完成！")